//
//  Model.m
//  WIFI
//
//  Created by lanou3g on 15/11/4.
//  Copyright © 2015年 杨秘. All rights reserved.
//

#import "Model.h"

@implementation Model

// 文件管理者
// 复杂对象的进行持久化 叫做归档 与反归档 (编码 与解码)
// 必须要实现的 而且必须这么写
// 归档方法 编码成可以持久化的格式
- (void)encodeWithCoder:(NSCoder *)aCoder
{
    // 对每一个属性都要编码
    // 注意属性类型
    [aCoder encodeObject:self.name forKey:@"name"];
    [aCoder encodeObject:self.data forKey:@"data"];
    // 除了对象类型 其他类型都有特殊的编码方法
    [aCoder encodeInteger:self.age forKey:@"age"];
    
}

// 反归档方法 解码过程 (初始化方法)
- (id)initWithCoder:(NSCoder *)aDecoder
{
    self = [super init];
    if (self) {
        // 解码过程 类似转码过程 除了对象类型 特殊类型也需要特殊解码
        self.name = [aDecoder decodeObjectForKey:@"name"];
        self.age = [aDecoder decodeIntegerForKey:@"age"];
        self.data = [aDecoder decodeObjectForKey:@"data"];
    }
    return self;
}

@end
